#include <stdio.h>
#include <termios.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include "gps.h"

int main(int argc,char *argv[]) {
    int fd;                         // 文件描述符
    char buf[128];                  // 读取数据的缓冲区
    int count;                      // 读取数据的字节数
    struct gprmc_data data;         // 存储解析后的GPS数据的结构体

    // 步骤一：打开串口设备
    fd = open("/dev/ttyS9", O_RDWR | O_NOCTTY | O_NDELAY);
    
    if (fd < 0) {
        printf("open error \n");   // 打开失败提示
        return -1;                  // 返回错误码
    }

    // 步骤二：设置串口参数
    set_uart(fd, 9600, 8, 'N', 1);

    sleep(2);  // 等待设备初始化

    // 步骤三：循环读取GPS数据
    while (1) {
        count = read(fd, buf, sizeof(buf));  // 从串口读取数据
        memset(&data, 0, sizeof(data));      // 清空存储数据的结构体
        get_gps_data(buf, &data);           // 解析GPS数据
        sleep(2);                             // 等待下一次读取
    }

    // 步骤四：关闭串口设备
    close(fd);
    
    return 0;
}
